/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package shaman.storage.api;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 *
 * @author Shaman
 */

public interface Filter extends Configurable {

     public enum FilterType
     {
        PREPROCESSOR,
        COMPRESSOR,
        CRYPTOR,
        POSTPROCESSOR
     }

    FilterType getFilterType();

    String getName();

    OutputStream getOutputStream(OutputStream compressedStream) throws IOException;

    InputStream getInputStream(InputStream compressedStream) throws IOException;
}
